import { Prisma } from "@prisma/client";

/**
 * 包含所有关联信息的用户类型
 */
export type UserWithRelations = Prisma.usersGetPayload<{
  include: {
    conversations: true;
    friends_friends_friend_idTousers: true;
    friends_friends_user_idTousers: true;
    group_members: true;
    groups: true;
    messages_messages_receiver_idTousers: true;
    messages_messages_sender_idTousers: true;
    notifications: true;
  };
}>;

// 一个用户：
// 有多个好友关系（friends 表）
// 可能是别人好友（friends.friend_id）
// 发过多个消息（messages.sender_id）
// 收到过多个消息（messages.receiver_id）
// 拥有多个会话（conversations.user_id）
// 是某个群的群主（groups.owner_id）
// 是多个群的成员（group_members.user_id）
// 拥有多个通知（notifications.user_id）
